// 找到所有的水仙花数:水仙花数是这样的一个三位数：这个数等于每一位上的数的立方和,比如153
object NarcissisticNumbers {
  def main(args: Array[String]): Unit = {
    // 遍历所有三位数，范围是 100 到 999
    for (num <- 100 to 999) {
      if (isNarcissistic(num)) {
        println(num)
      }
    }
  }

  def isNarcissistic(n: Int): Boolean = {
    // 提取百位数字
    val hundreds = n / 100
    // 提取十位数字
    val tens = (n / 10) % 10
    // 提取个位数字
    val units = n % 10
    // 计算每一位数字的立方和
    val sumOfCubes = Math.pow(hundreds, 3).toInt + Math.pow(tens, 3).toInt + Math.pow(units, 3).toInt
    // 判断立方和是否等于原数
    sumOfCubes == n
  }
}